package ywpt.service.config;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;

import ywpt.model.Department;
import ywpt.model.KnowledgeType;

public interface KnowledgeTypeService {

	public abstract KnowledgeType getKnowledgeTypeById(Long id);

	public abstract int getKnowledgeTypeCountByCriteria(DetachedCriteria query);

	public abstract List<KnowledgeType> getKnowledgeTypes(
			DetachedCriteria query, int pageSize, int startIndex);

	public abstract void saveKnowledgeType(KnowledgeType knowledgeType, Long parentId);

	public abstract void updateKnowledgeType(KnowledgeType knowledgeType, Long parentId);

	public abstract void removeKnowledgeType(Long id);

	public abstract List<KnowledgeType> getKnowledgeTypes();

	public abstract List<Department> getDepartment();
	
	public abstract String creatKnowledgeTypeCode(Long parentId);
	
	public abstract List<KnowledgeType> getKnowledgeTypes(DetachedCriteria query);
	
	public abstract List<KnowledgeType> getChildrenByParent(Long parentId);
	
	public abstract String getTypeNameByIds(Long first,Long second,Long third);

}
